#ifndef DEVICE_WINDOW_MANAGER_SDL
#define DEVICE_WINDOW_MANAGER_SDL

    #include <SDL/SDL.h>
    #include "../device.h"
    #include "../../../define.h"
    #if defined sdl_device_support

    namespace sleek
    {
        namespace core
        {
            namespace device
            {
                class Device_sdl : public Device
                {
                    public:
                        Device_sdl(Device_stub);
                        virtual ~Device_sdl();

                        virtual bool run();
                        virtual void begin(texture::pixel);
                        virtual void end();

                        virtual void setGamma(texture::pixel);
                        virtual void setCaption(os::stringc);
                        virtual void setVideoSize(math::vector2du);
                        virtual void setWindowPos(math::vector2di);
                        virtual void setFullScreen(bool);

                        virtual void enableWindowDecorator(bool);
                        virtual core::math::vector2du getDesktopVideoSize();

                        virtual void WarpMouse(math::vector2di);
                        virtual void ShowMouse(bool);
                    protected:
                        Device_sdl(){}
                        void keymap(SDL_Event, input*);
                        SDL_Surface *display;
                        virtual void initOpenCL();
                    private:
                        friend Device* CreateDeviceWindowManager(DeviceWindowManager, Device_stub);
                };
            }
        }
    }
    #endif
#endif
